(function (){
    function initTippy() {
            // 基础配置（https://github.com/atomiks/tippyjs/）
            const defaultConfig = {
                allowHTML: true,             // 必须显式启用HTML内容
                animation: 'scale',          // 动画类型
                theme: 'custom-dark',        // 主题样式，可选值：light, light-border, material, translucent
                arrow: true,                 // 显示箭头
                duration: [300, 200],        // [show, hide] 动画时长(ms)
                // 高级配置
                interactive: true,           // 允许与提示框交互
                trigger: 'mouseenter',       // 触发方式
                // content: '点击查看个人资料',  // 默认文本（可被data-tippy-content覆盖）
                // 性能优化
                lazy: false,                 // 延迟加载
                appendTo: document.body,     // 挂载位置
                onCreate(instance) {
                    // 获取触发元素的宽度
                    const referenceWidth = instance.reference.getBoundingClientRect().width;
                    // 强制提示框宽度与父容器一致
                    instance.popper.style.maxWidth = `${referenceWidth}px`;
                }
            };

            // 初始化函数（支持动态位置）
            const initElement = (el) => {
                const position = el.getAttribute('data-tippy-position') || 'bottom';
                window.tippy(el, {
                    ...defaultConfig,
                    placement: position // 动态应用位置
                });
            };

            // 批量初始化
            const initAll = (elements) => {
                if (elements.length) {
                    elements.forEach(initElement);
                }
            };

            // 初始化现有元素
            const initialElements = document.querySelectorAll('[data-tippy-content]');
            initAll(initialElements);

            // 自动处理动态内容
            const observer = new MutationObserver((mutations) => {
                mutations.forEach((mutation) => {
                    if (mutation.addedNodes.length) {
                        const newElements = [...mutation.addedNodes].filter(node =>
                            node.nodeType === 1 && node.hasAttribute('data-tippy-content')
                        );
                        if (newElements.length) {
                            initAll(newElements);
                            // window.tippy(newElements, defaultConfig);
                        }
                    }
                });
            });

            // 初始绑定 + 动态监听
            observer.observe(document.body, {
                childList: true,
                subtree: true
            });
        }

    initTippy();
})();